package cn.edu.gdpt.mobile0123456789hwh0408;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
//2、适配器PeopleAdapter类继承RecyclerView.Adapter，并设置泛型为ViewHolder
public class PeopleAdapter extends RecyclerView.Adapter<PeopleAdapter.ViewHolder> {
//    4、定义适配器数据接口，在PeopleAdapter类的构造方法中传入数据
    String[] names;
    public PeopleAdapter(String[] names) {
        this.names = names;
    }

    //    1、定义定义内部类ViewHolder，用于描述列表界面布局，先继承RecyclerView.ViewHolder，
//    然后定义界面中的控件，最后在构造方法中进行初始化。
    static class ViewHolder extends RecyclerView.ViewHolder{
        TextView tvItemName;//声明控件变量
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
//            在构造方法中，通过FindViewById获得控件
            tvItemName=itemView.findViewById(R.id.tvItemName);
        }
    }
//   3、 按alt+insert，添加需要实现的接口方法。
//    6、在onCreateViewHolder()方法中，首先通过LayoutInflater获取列表项布局文件对象
//    ，然后创建ViewHolder对象，然后返回
    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View itemView= LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_rv_main_people,parent,false);
        ViewHolder viewHolder=new ViewHolder(itemView);
        return viewHolder;
    }
//7、将构造方法传入的数组设置到列表控件的TextView控件
    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        holder.tvItemName.setText(names[position]);

    }
//5、反馈列表记录数量，即从构造方法传入的数组长度
    @Override
    public int getItemCount() {
        return names.length;
    }
}
